草庐IT

java 128位结构位操作

全部标签

regex - 是否可以在 Golang 中提取字符串的一部分并在一次操作中替换这些部分?

假设我想从一个字符串中提取所有数字(很可能使用正则表达式匹配)并且我还想用通用占位符(如“#”)替换这些数字匹配。这很容易分两部分完成,先使用FindAll,然后使用ReplaceAll。但是,我对执行此类操作的性能成本深表怀疑。所以取一个字符串"sdasd3.2%sadas6...+8.9"替换为"sdasd#%sadas#...+#"得到一片[3.2,6.0,8.9]以尽可能高效的方式。编辑:我实现了regexp.FindAllString+regexp.ReplaceAllString并且对我的应用程序的性能影响非常小。我希望有空时尝试ElliotChance的方法并比较两者。

go - 通过另一个结构字段的类型声明结构字段的类型

这是*s3.GetObjectOutput结构:typeGetObjectOutputstruct{...Metadatamap[string]*string...}我想用结构字段声明我的结构,在GetObjectOutput结构中具有元数据字段类型,如下所示typeMyObjectstruct{Metadata*s3.GetObjectOutput.Metadata...}但这是不正确的。我如何声明一个带有字段的结构具有另一个结构字段的类型而不是显式写下:typeMyObjectstruct{Metadatamap[string]*string...} 最

go - HTTP批量从多个API获取并保存到结构

我有以下函数可用于获取URL并将数据返回到接口(interface)(例如struct/int/whatever):varhttpClient=&http.Client{Timeout:10*time.Second}funcgetURLToTarget(urlstring,targetinterface{})error{req,err:=httpClient.Get(url)iferr!=nil{returnerr}deferreq.Body.Close()returnjson.NewDecoder(req.Body).Decode(target)}然后我有几个看起来像这样的函数:fu

pointers - 为什么 2 个不同的 http.Request 结构的 http.Request.URL.Host 的地址相同?

此代码是大型代码库中的独立示例,用于尝试复制错误。该程序运行时,&request.URL.Host和&request1.URL.Host的地址相同。为什么?据我了解,这是两种不同的结构,因此URL.Host不应具有相同的地址。packagemainimport("crypto/tls""fmt""net/http""net/url")funcmain(){hostname:="www.google.com"uri,err:=url.Parse("http://www.google.com/")iferr!=nil{panic(err)}vartlsConfig*tls.Configtl

go - 我可以强制 filepath.Abs​​ 提供为另一个操作系统设计的路径吗?

我目前在Windows上工作。我使用以下代码获取相对路径的绝对路径。absolutePath,err:=filepath.Abs(relativePath)此输出为C:\project\test。有什么方法可以“欺骗”filepath.Abs​​以拥有Linux风格的绝对路径,无论是/project/test还是/d/project/test/?谢谢! 最佳答案 正如@JimB指出的那样,将相对路径转换为绝对路径不仅是特定于操作系统的,而且是特定于上下文的:不同系统(无论操作系统)上的相同相对路径可以产生不同的路径;事实上,即使在同

go - fmt.Sscanf 用于结构

我有之前序列化为fmt.Sprintf("%+v",d)的数据,d是一个struct实例.有没有办法把它扫描回来?我在下面使用fmt.Sscanf()的天真尝试失败了(GoPlayground)。packagemainimport("fmt")typedatastruct{fint}funcmain(){x:=data{1}s:=fmt.Sprintf("%+v",x)varydatan,err:=fmt.Sscanf(s,"%+v",&y)fmt.Printf("s=%s,n=%d,err=%+v,y=%+v\n",s,n,err,y)}输出是:s={f:1},n=0,err=can

json - 在使用 MongoDB 将文档分配给 Go 中的结构之前如何转换文档?

我正在使用go和mongodb编写多语言API。我有一个mongodb文档,格式为:{_id:ObjectID(bla)"key":{"en":"Hello","es":"Hola"}}但是,API需要报告json格式:{_id:ObjectID(bla),"key":"Hola"}如果客户端发送语言header。有没有简单/有效的方法来做到这一点?我唯一可行的解​​决方案是制作两个单独的结构,然后将它们与一堆switch/case语句合并在一起,例如:varapiMyStructvarmgoMyMgoStructsession.DB("db").C("col").Find(nil).

xml - 无法在 Go 中正确解码/编码动态 XML 结构

我有一个描述XML模式的xsd,我正在尝试在go结构中编写这个xsd的表示,以便我能够基于这个模式编码/解码XML。这是我为重现我遇到的问题而编写的一些goplayground代码。https://play.golang.org/p/ktJOsCDyLW在架构中,标签video和web是动态的(因为它们都可以在media下出现不止一次,并且具有不同的里面的内容)。我尝试编写一个动态结构以及Unmarshaller/Marshaller接口(interface),如示例所示,我似乎能够执行解析,但它解码/编码内部内容不正确,忽略名称和URL列表,只采用一个元素每一个。我不确定这里的问题是

xml - 动态结构元素上的编码/xml 解码

我使用Golang处理epubs,我必须从cover.xhtml文件(或.opf文件中提到的任何文件)中获取封面图像。我的问题是Cover.xhtml文件中元素的动态结构。每个epub在Cover.xhtml文件上都有不同的结构。例如,另一个epubcover.xhtml文件我需要从这个文件中获取img标签的src属性。但我做不到。这是我的代码中处理解码cover.xhtml文件的部分typeCPSRCSstruct{Srcstring`xml:"src,attr"`}typeCPIMGSstruct{ImageCPSRCS`xml:"img"`}XMLContent,err=iout

go - 什么是 cgo 类型,相当于指向结构的 const 指针?

我在C中定义了一个外部函数://externvoidgoCallback(conststructlibvlc_event_t*,void*);在go中定义://exportgoCallbackfuncgoCallback(eventunsafe.Pointer,userDataunsafe.Pointer){log.Fatal("TODOgoCallback")}编译代码时出现类型冲突错误#github.com/tarrsalah/libvlc-goInfileincludedfrom$WORK/github.com/tarrsalah/libvlc-go/_obj/_cgo_expo